<?php

namespace App\Models\Order;

use App\Models\BaseModel;

class OrderHistoryModel extends BaseModel
{
    /**
     * 与模型关联的数据表。
     *
     * @var string
     */
    protected $table = 'order_history';

    /**
     * 可以被批量赋值的属性。
     *
     * @var array
     */
    protected $fillable = array(
        'name',
        'path',
        'parame',
        'type',
        'type_name',
        'is_run',
        'created_at',
        'shop_id',
        'first_status',
        'first_money',
        'first_status_at',
        'updated_at'
    );

    // public $timestamps = false;

    public function aliasRable($alias)
    {
        return $this->setTable($alias);
    }

    /**
     * 查询数据需要过滤掉的属性。
     *
     * @var array
     */

    protected $hidden = array(
        'updated_at'
    );

    //返回关键字段
    public function getTableField()
    {
        return $this->fillable;
    }

    protected function serializeDate(\DateTimeInterface $date)
    {
        return $date->format('Y-m-d H:i:s');
    }

    /**
     * 建表语句
     */
    protected function buildTable($name = '')
    {
        $tablename = $this->table;
        if (!empty($name)) {
            $tablename = $name;
        }
        $table = "CREATE TABLE IF NOT EXISTS  $tablename (
            `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
            `order_num` varchar(255) DEFAULT '' COMMENT '上游订单号',
            `order` varchar(255) DEFAULT '' COMMENT '本地订单号',
            `province` varchar(255) DEFAULT '' COMMENT '省',
            `city` varchar(255) DEFAULT '' COMMENT '市',
            `area` varchar(255) DEFAULT '' COMMENT '区',
            `street` varchar(255) DEFAULT '' COMMENT '街道',
            `address` varchar(255) DEFAULT '' COMMENT '详细地址',
            `user_name` varchar(255) DEFAULT '' COMMENT '用户名称',
            `user_phone` varchar(13) DEFAULT '' COMMENT '用户联系方式',
            `user_idcard` varchar(30) DEFAULT '' COMMENT '用户身份信息',
            `package_name` varchar(255) DEFAULT '' COMMENT '原套餐名称',
            `turn_package_name` varchar(255) DEFAULT '' COMMENT '转套餐名称',
            `author_id` varchar(255) DEFAULT '' COMMENT '达人id',
            `author_name` varchar(255) DEFAULT '' COMMENT '达人名称',
            `iccid` varchar(255) DEFAULT '' COMMENT '订购手机号',
            `imei` varchar(255) DEFAULT '' COMMENT '订购手机号串号',
            `logistics` varchar(255) DEFAULT '' COMMENT '物流名称',
            `logistics_num` varchar(255) DEFAULT '' COMMENT '物流单号',
            `channel` varchar(255) DEFAULT '' COMMENT '订单渠道',
            `order_time` datetime DEFAULT NULL COMMENT '下单时间',
            `activat_time` datetime DEFAULT NULL COMMENT '激活时间',
            `order_status_desc` varchar(255) DEFAULT '' COMMENT '订单状态',
            `three_msg` varchar(255) DEFAULT '' COMMENT '失败信息',
            `shop_id` int(11) DEFAULT '0' COMMENT '店铺id',
            `more_file_id` int(11) DEFAULT '0' COMMENT '文件id',
            `created_at` datetime DEFAULT NULL COMMENT '创建时间',
            `updated_at` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
            PRIMARY KEY (`id`),
            KEY order_num(`order_num`),
            KEY user_name(`user_name`),
            KEY user_phone(`user_phone`),
            KEY order_status_desc(`order_status_desc`),
            KEY logistics_num(`logistics_num`),
            KEY package_name(`package_name`),
            KEY turn_package_name(`turn_package_name`),
            KEY user_idcard(`user_idcard`),
            KEY author_id(`author_id`),
            KEY author_name(`author_name`)
            ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='历史订单';";
        return $table;
    }

    /**
     * 插入新的字段
     */
    protected function bulidField()
    {
        //例子
        // $array = [
        //     'type' => "varchar(100) DEFAULT NULL COMMENT '类型'",
        //     'type_name' => "varchar(100) DEFAULT NULL COMMENT '类型名称'",
        // ];
        // return $array;
    }
}
